package demo3;

interface IShape {
//这就是一个接口
    public void draw();
    //接口的方法默认是public abstract修饰的
    //int age = 1;
    //接口中的成员变量默认是public static final修饰的
   /* public static void draw1() {
        //静态方法可以有具体的实现
    }
    default  void draw2() {
        //default修饰的方法是可以有具体实现的
        System.out.println("1234");
    }
*/
}

class Cycle implements IShape {
    //一个类实现了一个接口
    //实现一个接口之后，我们就需要重写这个接口里面的抽象方法

    @Override
    public void draw() {
        System.out.println("⭕");
    }

    /*@Override
    public void draw2() {
        System.out.println("我觉得父接口的这个默认方法不好，我自己写！");
        //这个方法不是必须要重写的
    }*/
}
class Rect implements IShape {

    @Override
    public void draw() {
        System.out.println("◇");
    }
}
public class Test {
    public static void drawMap(IShape iShape) {
        iShape.draw();
    }
    public static void main(String[] args) {
        //IShape iShape = new IShape();//是不可以通过new关键字进行实例化的
        drawMap(new Cycle());
        drawMap(new Rect());
    }
}
